#ifndef __COM_PID_H__
#define __COM_PID_H__
#include "Com_debug.h"
#define LIMIT1(x, min, max) ((x) < (min) ? (min) : ((x) > (max) ? (max) : (x)))
typedef struct
{
    float kp;         // 比例增益  恢复是否及时  过大会震荡 过小恢复慢
    float ki;         // 积分增益  消除稳态误差
    float kd;         // 微分增益  消除过调
    float desire;     // 目标值
    float measure;    // 测量值
    float integral;   // 误差积分
    float last_error; // 上一次的误差
    float output;
}PID_Struct;

void Com_PID_Calculate(PID_Struct *pid, float dt);

void Com_PID_CascadeCalculate(PID_Struct *inner, PID_Struct *outter, float dt);
#endif /* __COM_PID_H__ */
